package com.cskaoyan.javase.basic._2variable._3notice;

/**
 * 注意事项
 * 在定义变量的过程中，存在很多细节上的使用注意事项，比如：
 *
 *      1.Java当中的整数字面值常量，默认当作int处理。
 *      假如你想使用字面值整数定义一个long类型变量，那么该字面值常量的后面应该加上一个"L"区分（禁止使用小写"l"）。
 *
 *      2.Java当中的小数字面值常量，默认当作double处理。假如你想使用字面值小数定义一个float类型变量，那么该字面值常量的后面应该加上一个"F"或"f"区分。
 *      3.定义一个变量是有它的作用范围的，这个范围通常用{}来界定，同样一个{}不能有同名变量。
 *      局部变量的作用范围在大括号内部.
 *
 *      4.虽然Java语法允许一行定义多个相同数据类型的变量，但规范的Java代码禁止这样做！
 * 一行定义多个变量，不仅格式不美观，到底定义了多少变量也不直观，不要这么做。
 *
 *
 * @since 16:22
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        int a = 100;
        // 100L是long类型的100,整数字面值常量默认当做int处理
        long b = 100L;

        double c = 0.1;
        // 0.1F是float类型的小数0.1,小数字面值常量默认当成double处理
        float d = 0.1F;

        // int a = 200;

        // Java语法允许一行定义多个变量
        // 但是这种写法不应该出现在规范的Java代码中
        int a1, a2, a3, a4 = 100;


        /*
            整数字面值常量默认当做int处理
            那为什么能够写出以下代码呢?
         */
        byte num1 = 100;
        long num2 = 100;
        char num3 = 100;

        /*
            小数字面值常量默认当中double处理
            那么为什么不能写出下面的代码呢?
         */
        double num4 = 0.1;
        // float num5 = 0.1;
    }
}
